(function (mui, $) {
var _Data = {'token':app.store('token'), 'iOrderId':'', 'order_id':'', 'order_no':''};

mui.plusReady(function () {
	var view = plus.webview.currentWebview();
	_Data.iOrderId = _Data.order_id = view.extras.order_id;
	
	app.log('请求参数：', {'token':app.store('token'), 'data':{'order_id':_Data.order_id}});
	// 从服务器请求订单详情
	plus.nativeUI.showWaiting();
	$.ajax({
		'dataType' : 'json',
		'type'     : 'post',
		'url'      : app.url('App/Order/Index/calcOrderTotalPrice'),
		'data'     : {'token':app.store('token'), 'data':{'order_id':_Data.order_id}}
	})
	.fail(function (res) {
		app.log('读取订单数据失败：', res);
		app.toast('读取订单数据失败');
		plus.nativeUI.closeWaiting();
	})
	.done(function (res) {
		app.log('订单数据：', res);
		plus.nativeUI.closeWaiting();
		
		if (500 == res.code) { app.toast('你还未登录'); return; }
		if (300 == res.code) { app.toast(res.msg); return; }
		if (200 != res.code) { app.toast('请求失败'); return; }
		if (res.msg) { app.toast(res.msg); }
		
		$('.order-no').text(_Data.order_no = res.data.number);
		$('.order-total').text(res.data.total / 100);
		if (res.data.balance_pay_nums > 0) {
			$('.frozen-money').text('(已冻结￥' + (res.data.balance_pay_nums / 100)+')');
		}
	})
	;
	
	balance();
});

 function balance () {
	$.ajax({
		'dataType' : 'json',
		'type'     : 'post',
		'url'      : app.url('App/Member/Index/balance'),
		'data'     : {'token':app.store('token')}
	})
	.fail(function (res) {
	})
	.done(function (res) {
		app.log('分销数据：', res);
		
		if (500 == res.code) { app.toast('你还未登录'); return; }
		if (300 == res.code) { app.toast(res.msg); return; }
		if (200 != res.code) { app.toast('请求失败'); return; }
		
		$('.num-balance').text(res.data.use);
	})
	;
}

function pay (channel) {
	var view = plus.webview.currentWebview();

	var data = {
		'token' : app.store('token'),
		'data'  : {
			'order_id' : _Data.order_id,
			'payway'   : $('input[name=payway]:checked').val(),
			'balanced' : $('[name="balance"]').is(':checked') ? 'yes' : 'no',
		}
	};
	// 从服务器请求支付订单
	plus.nativeUI.showWaiting('正在提交订单...');
	app.log('请求参数：', data);
	$.ajax({
		'dataType' : 'json',
		'type'     : 'post',
		'url'      : app.url('App/Pay/Index/index'),
		'data'     : data
	})
	.fail(function (res) {
		app.log('订单提交支付失败：', res);
		app.error('订单提交支付失败');
		plus.nativeUI.closeWaiting();
	})
	.done(function (res) {
		app.log('提交支付：', res);
		plus.nativeUI.closeWaiting();
		
		if (500 == res.code) { app.toast('你还未登录'); return; }
		if (300 == res.code) { app.toast(res.msg); return; }
		if (200 != res.code) { app.toast('请求失败'); return; }
		if (res.msg) { app.toast(res.msg); }
		
		if (res.data && true === res.data.isOrderFinish) {
			// 如果优惠卷金额大于商品金额，订单直接完成
			success(_Data.order_id); return;
		}
		
		plus.nativeUI.showWaiting('正在发起支付...');
		plus.payment.request(channel, res.data.url, function (result) {
			plus.nativeUI.closeWaiting();
            plus.nativeUI.alert("支付成功！", function () { success(_Data.order_id); });
            
        }, function(error) {
        	plus.nativeUI.closeWaiting();
        	app.log(JSON.stringify(error));
        	plus.nativeUI.alert("支付失败");
        });
	})
	;
}

mui.back = function () {
	plus.nativeUI.toast('你的订单还未完成支付，可在我的订单中继续操作完成支付');
	plus.webview.currentWebview().close();
}

// 提交订单
$('.btn-submit').on('tap', function () {
	//var channel = null, payway = $('input[name=payway]:checked').val();
	//if (!channel) { plus.nativeUI.toast('你的手机没有此支付通道，请选择其他支付方式'); return; }    // 获取支付通道
    /*plus.payment.getChannels(function (channels) {
		for (var i in channels) {
			var channel = channels[i];
			if (payway == channel.id) { pay(channel); break; }
		}
    }, function (e) {
        alert("获取支付服务失败");
    });*/
  app.wxPay(_Data.order_id, _Data.order_no, $('[name="balance"]').is(':checked') ? 'yes' : 'no');
});

// 支付成功，跳转到提示页面
function success (iOrderNo) {
	var view = plus.webview.currentWebview();
	
	var data = {'id':iOrderNo, 'order_no':_Data.order_no, 'payway':$('input[name=payway]:checked').val()}
	app.open('checkout.success.html', data);
	try {
		if (view.extras.callback) { plus.webview.getWebviewById(view.extras._FROM_).evalJS(view.extras.callback); }
	} catch (e) {}
	
	view.hide();
	setTimeout(function () { view.close(); }, 500);
	
	setTimeout(function () {
		plus.webview.getWebviewById('cart.html').evalJS('cart.refresh()');
	}, 800);
};

})(mui, $)
